package Teste;

import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import Classes.Pilha;
import Classes.PilhaDeArray;
import Classes.PilhaVaziaException;
import static org.junit.Assert.*;

public class PilhaTest {

	private static Pilha pilha;

	@BeforeClass
	public static void criarPilha() {
		pilha = new PilhaDeArray();

	}

	@AfterClass
	public static void destruirPilha() {
		pilha = new PilhaDeArray();

	}

	@Before
	public void esvaziarPilha() {
		pilha.esvaziar();
	}

	@Test(expected = PilhaVaziaException.class)
	public void PilhaVazia() throws PilhaVaziaException {
		assertEquals(0, pilha.getTamanho());
		pilha.desempilhar();

	}

	@Test
	public void empilharUmElemento() throws PilhaVaziaException {
		assertEquals(0, pilha.getTamanho());
		pilha.empilhar("Java");
		assertEquals(1, pilha.getTamanho());
		pilha.empilhar("Python");
		assertEquals(2, pilha.getTamanho());
		assertEquals("Java", pilha.desempilhar());
		assertEquals(0, pilha.getTamanho());
	}
}
